package com.hsj.common.system.entity;

import com.cjxch.supermybatis.base.annotation.PrimaryKey;
import com.cjxch.supermybatis.base.annotation.Table;
import com.cjxch.supermybatis.base.entity.BaseEntity;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 系统菜单
 * @Author: Czy
 * @Date: 2024-01-23 23:03:26
 * @Email: 314170122@qq.com
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Table("t_sys_menu")
public class SysMenuDo extends BaseEntity {
 
    /**
    * 
    */
    @PrimaryKey
    private Integer id;
 
    /**
    * 菜单名
    */
    private String name;
 
    /**
    * 上级菜单id
    */
    private Integer parentId;

    /**
     * 菜单层级
     */
    private Integer level;

    /**
     * 排序id
     */
    private Integer sortIndex;

    /**
    * 菜单类型
    */
    private String type;
 
    /**
    * 菜单别名
    */
    private String alias;
 
    /**
    * 菜单图标代码
    */
    private String icon;
 
    /**
    * 路由地址
    */
    private String routePath;
 
    /**
    * 重定向地址
    */
    private String redirectUrl;
 
    /**
    * 视图
    */
    private String view;
 
    /**
    * 颜色代码
    */
    private String color;
 
    /**
    * 隐藏类型
    */
    private Boolean hidden;

    /**
     * 隐藏面包屑
     */
    private Boolean hiddenBreadcrumb;
 
    /**
    * 整页路由
    */
    private Boolean fullPage;
 
    /**
    * 标签
    */
    private String tag;
 
    /**
    * 树形层级目录
    */
    private String path;
 
    /**
    * 创建时间
    */
    private Date createTime;
 
    /**
    * 修改时间
    */
    private Date modifyTime;

    /**
     * 菜单亮度
     */
    private String active;


    @Override
    public void onSave() {
        this.createTime = new Date();
        this.modifyTime = new Date();
    }

    @Override
    public void onUpdate() {
        this.modifyTime = new Date();
    }
}
